import { request } from 'umi';

/**
* get one record by id
*/
export async function getTakeAwayRuleDetailValueById(id: number, params: object = {}) {
    return request<ApiResponse.ResultModel<TakeAwayRuleDetailValueType.TakeAwayRuleDetailValueResponse>>(`/api/takeAwayRuleDetailValue/getById/${id}`, {
        method: 'GET',
        params: params
    });
}

/**
* get all records
*/
export async function getTakeAwayRuleDetailValueAll(params: object = {}) {
    return request<ApiResponse.ResultModel<TakeAwayRuleDetailValueType.TakeAwayRuleDetailValueResponse>>(`/api/takeAwayRuleDetailValue/getAll`, {
        method: 'GET',
        params: params
    });
}

/*
* get records by page
*/
export async function getTakeAwayRuleDetailValuePageList(params: object = {}) {
    return request<PageInfo.PageResponse<TakeAwayRuleDetailValueType.TakeAwayRuleDetailValueResponse>>(`/api/takeAwayRuleDetailValue/getAll`, {
        method: 'GET',
        params: params
    });
}

/*
* update partial field of record
*/
export async function commonUpdate(id: number, fieldName: string, value: string) {
    return request<ApiResponse.ResultModel<TakeAwayRuleDetailValueType.TakeAwayRuleDetailValue>>(`/api/takeAwayRuleDetailValue/PatchById?id=${id}`, {
        method: 'PATCH',
        headers: {
            'Content-Type': 'application/json',
        },
        data: [{
            "id": id,
            "op": "replace",
            "path": `/${fieldName}`,
            "value": value

        }]
    });
}

/*
* update record
*/
export async function updateTakeAwayRuleDetailValue(params: TakeAwayRuleDetailValueType.TakeAwayRuleDetailValueResponse) {
    return request<ApiResponse.ResultModel<boolean>>(`/api/takeAwayRuleDetailValue/put`, {
        method: 'put',
        headers: {
            'Content-Type': 'application/json',
        },
        data: [params],
    });
}

/*
* add one record
*/
export async function addTakeAwayRuleDetailValue(params: TakeAwayRuleDetailValueType.TakeAwayRuleDetailValueResponse) {
    return request<ApiResponse.ResultModel<TakeAwayRuleDetailValueType.TakeAwayRuleDetailValueResponse>>('/api/takeAwayRuleDetailValue/add', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        },
        data: [params],
    });
}

export async function deleteTakeAwayRuleDetailValue(params: DeleteRequest) {
    return request<ApiResponse.ResultModel<boolean>>(`/api/takeAwayRuleDetailValue/delete`, {
        method: 'DELETE',
        headers: {
            'Content-Type': 'application/json',
        },
        data: [params.id],
    });
}
